/**
 * 通用js方法封装处理
 * Copyright (c) 2019 aidex
 */

export function replaceAll(text, stringToFind, stringToReplace) {
	if (stringToFind == stringToReplace) return this;
	var temp = text;
	var index = temp.indexOf(stringToFind);
	while (index != -1) {
		temp = temp.replace(stringToFind, stringToReplace);
		index = temp.indexOf(stringToFind);
	}
	return temp;
}


/**
 * 判断数据类型的函数
 * @param {*} value - 需要判断类型的值
 * @returns {string} - 返回数据类型的字符串，可能的值有 "string"、"number"、"boolean"、"array"、"null"、"date"、"regexp" 和 "object"
 */
export function getType(value) {
	const type = typeof value;

	if (type !== "object") {
		return type;
	}

	if (Array.isArray(value)) {
		return "array";
	}

	if (value === null) {
		return "null";
	}

	if (value instanceof Date) {
		return "date";
	}

	if (value instanceof RegExp) {
		return "regexp";
	}

	return "object";
}

/**
 * 检查给定值的类型
 * @param {*} value - 要检查类型的值
 * @returns {string} - 值的类型
 */
export function checkType(value) {
  return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
}
